LR & SVM

Posted by ZhengYang on 2016-08-26

LR 与 SVM

LR可以看作是一个线性分类器,一个w向量构成的超平面,与w内积大于0的表示正类,小于0的表示负类。LR与SVM线性核都是用一个超平面做分类,区别在于损失函数不同。LR是logistic损失,SVM是hinge损失。

LR

LR原本的损失是NLL,可以看成cross entropy,对数损失。如果把 $y=\{1,0\}$,换成 $y=\{1,-1\}$,那么可以看成logistic损失。
$P(x)=\frac{1}{1+e^{-f(x)}}, f(x)=w^Tx+b$
$$\begin{align}
NLL&=-log\prod_{i=1}^N [P(x_i)^{y_i}+(1-P(x_i))^{1-y_i}] \\
=&-\sum_{i=1}^N [y_ilogP(x_i)+(1-y_i)log(1-P(x_i))]
\end{align}$$
将$y=\{1,0\}$,换成$y=\{1,-1\}$,得
$$\begin{align}
NLL&=-\sum_{i=1}^N [I(y_i=1)logP(x_i)+I(y_i=-1)log(1-P(x_i))] \\
=&-\sum_{i=1}^N [I(y_i=1)log\frac{1}{1+e^{-f(x_i)}}+I(y_i=-1)log(1-\frac{1}{1+e^{-f(x_i)}}] \\
=&-\sum_{i=1}^N [I(y_i=1)log\frac{1}{1+e^{-f(x_i)}}+I(y_i=-1)log(\frac{e^{-f(x_i)}}{1+e^{-f(x_i)}}] \\
=&-\sum_{i=1}^N [I(y_i=1)log\frac{1}{1+e^{-f(x_i)}}+I(y_i=-1)log(\frac{1}{e^{f(x_i)}+1}] \\
=&-\sum_{i=1}^N [log\frac{1}{1+e^{-y_if(x_i)}}] \\
=&\sum_{i=1}^N [log(1+e^{-y_if(x_i)})]
\end{align} $$

SVM

SVM可以看成hinge损失,加一个L2正则项
SVM原始问题:
$$min_{w,b,\xi} \{\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i\}$$
s.t.
$y_i(w^Tx_i+b)\geqslant1-\xi_i, i=1,2,…,N$
$\xi_i\geqslant0, i=1,2,…,N$
其中,$\xi_i$是松弛变量。

如果$x_i$在正确最大边界以外,那么$\xi_i=0$,$y_i(w^Tx_i+b)\geqslant1$,同时满足约束1不等式,满足2等式;
如果$x_i$在正确最大边界以内,那么$\xi_i=|y_i-f(x_i)|=1-y_if(x_i)=1-y_i(w^Tx_i+b)\geqslant0$,同时满足约束1等式,满足2不等式。

等价于

hinge损失,L2正则
$$min_{w,b}\{\lambda||w||^2 +\sum_{i=1}^N[1-y_i(w^Tx_i+b)]_+\}$$
证明:
从SVM原问题到hinge损失
如果$x_i$在正确最大边界以外,那么$\xi_i=0$,$y_i(w^Tx_i+b)\geqslant1$,同时满足约束1不等式,满足2等式;
如果$x_i$在正确最大边界以内,那么$\xi_i=|y_i-f(x_i)|=1-y_if(x_i)=1-y_i(w^Tx_i+b)\geqslant0$,同时满足约束1等式,满足2不等式。
合并约束,得,
$$\xi_i=[1-y_i(w^Tx_i+b)]_+$$
带入SVM原始问题,得,
$$min_{w,b} \{\frac{1}{2}||w||^2+C\sum_{i=1}^N[1-y_i(w^Tx_i+b)]_+\}$$
$$min_{w,b} C\{\frac{1}{2C}||w||^2+\sum_{i=1}^N[1-y_i(w^Tx_i+b)]_+\}$$
去掉常量C,不影响优化结果,得
$$min_{w,b} \{\frac{1}{2C}||w||^2+\sum_{i=1}^N[1-y_i(w^Tx_i+b)]_+\}$$
令$\lambda=\frac{1}{2C}$,得
$$min_{w,b} \{\lambda||w||^2+\sum_{i=1}^N[1-y_i(w^Tx_i+b)]_+\}$$
得到hinge损失,L2正则的损失函数

从hinge损失到SVM原问题
令$[1-y_i(w^Tx_i+b)]_+=\xi_i$,$\xi_i\geqslant0$,满足约束1;
如果$1-y_i(w^Tx_i+b)>0$,则$\xi_i=1-y_i(w^Tx_i+b)$,即$y_i(w^Tx_i+b)=1-\xi_i$;
如果$1-y_i(w^Tx_i+b)\leqslant0$,则$\xi_i=0\geqslant1-y_i(w^Tx_i+b)$,即$y_i(w^Tx_i+b)\geqslant1-\xi_i$;
所以$y_i(w^Tx_i+b)\geqslant1-\xi_i$,满足约束2。
因此,可以写成
$$min_{w,b} \{\sum_{i=1}^N\xi_i+\lambda||w||^2\}$$
令$\lambda=\frac{1}{2C}$,得
$$min_{w,b} \frac{1}{C}\{C\sum_{i=1}^N\xi_i+\frac{1}{2}||w||^2\}$$
常数C不影响优化,去掉后等价于SVM原问题,即
$$min_{w,b} \{C\sum_{i=1}^N\xi_i+\frac{1}{2}||w||^2\}$$

SVM-hinge总结
不论是从SVM到hinge,还是从hinge到SVM,关键是令在$\xi_i=[1-y_i(w^Tx_i+b)]_+$。

总结

LR和SVM都可以看成是损失函数+L2正则,LR是logistic损失,而SVM是hinge损失
令$z=yf(x)$,损失值为$g(z)$,那么
$g(z)_{hinge loss} = [1-z]_+$ ,在z为小于1时,为1-z
$g(z)_{logistic loss}=log(1+exp(-z))$,当z为负无穷时,为-z
因此,hinge loss 在数轴的左部分,都会大于lostistic loss,另外,两个都大于0-1损失。
最主要的区别,目标函数不同。
LR中所有点都会有损失,即使非常非常小,+L2
SVM的损失只有被分错的 和 稍微分对的才有损失,+L2
解法不同
LR没有闭式解,可以随机梯度
SVM有闭式解,全局最优

不加正则LR,凸函数
加正则LR,严格凸
SVM严格凸

可以看到,给定一个数据集,一旦完成Linear SVM的求解,所有数据点可以被归成两类
1)第一类是被完全正确分类的点,gap里被分对的点不算
2)第二类是被错误分类的点,和在gap里被分对的点
假设一个数据集已经被Linear SVM求解,那么往这个数据集里面增加或者删除更多的第一类点并不会改变重新求解的Linear SVM平面。这也是一个SVM的泛化误差略小于LR的区别

Reference

统计学习方法
http://www.iliuye.com/index.php/Wap/Index/article/id/190886